/**
 * 描述: 初始化路由信息，自定义全局异常处理
 * 作者: wen
 * 日期: 2025.2.10
*/

const express = require('express');
const userRouter = require('./users'); 
const postRouter = require('./post')
const commonRouter=require('./common')
const { jwtAuth } = require('../utils/user-jwt'); // 引入jwt认证函数
const router = express.Router(); 
router.use(jwtAuth); 

router.use('/api', userRouter); // 注入用户路由模块
router.use('/api', postRouter); // 注入帖子路由模块
router.use('/api', commonRouter) //通用文件处理
// 自定义统一异常处理中间件，需要放在代码最后
router.use((err, req, res, next) => {
  console.log('err===', err);
  if (err && err.name === 'UnauthorizedError') {
    const { status = 401, message } = err;
    // 抛出401异常
    res.status(status).json({
      code: status,
      msg: 'token失效,请重新登录',
      data: null
    })
  } else {
    const { output } = err || {};
    const errCode = (output && output.statusCode) || 500;
    const errMsg = (output && output.payload && output.payload.error) || err.message;
    res.status(errCode).json({
      code: errCode,
      msg: errMsg
    })
  }
})

module.exports = router;